15 January, 2024

Opis projektu

W naszym projekcie zajęliśmy się analizą wariancji (ANOVA) danych pobranych z kaggle. Dane zawierają wyniki z egazminów grupy studentów z 3 przedmiotów: matematyki, czytania i pisania, rasę studentów, rodzaj spożywanego posiłku, przygotowanie do testu. Oprócz tego zawierają informacje o stopniu edukacji rodziców. Skupimy się najpierw na wyczyszczeniu danych, krótkiej analizie i kilku wykresach i na końcu na samej analizie wariancji.

Wczytanie danych

Wczytujemy plik StudentsPerformance.csv z danymi dotyczącymi wyników egzaminów grupy studentów ze Stanów zjednoczonych.

Jak widać dane są w języku angielskim, dlatego na samym rozpoczynamy od przetłumaczenia na język polski oraz zmiany zmiennych kategorycznych na typ factor.

Czyszczenie danych

Po zastosowaniu zmian zestaw prezentuje się następująco:

Rozkład zmiennych kategorycznych - Płeć

Rozkład zmiennych kategorycznych - Grupa etniczna

Rozkład zmiennych kategorycznych - Poziom wykształcenia rodziców

Rozkład zmiennych kategorycznych - Rodzaj spożywanych posiłków

Rozkład zmiennych kategorycznych - Kurs przygotowawczy

Rozkład zmiennych ilościowych - Wynik-matematyka

Rozkład zmiennych ilościowych - Wynik-pisanie

Rozkład zmiennych ilościowych - Wynik-czytanie

Tablica korelacji dla zmiennych ilościowych

##                  Wynik-matematyka Wynik-czytanie Wynik-pisanie
## Wynik-matematyka             1.00           0.80          0.78
## Wynik-czytanie               0.80           1.00          0.95
## Wynik-pisanie                0.78           0.95          1.00

Wykres tablicy korelacji

Czy kobiety mają lepsze wyniki od mężczyzn z części humanistycznej?

Czy kobiety mają lepsze wyniki od mężczyzn z części humanistycznej?

Wykształcenie rodziców, a wynik z matematyki

Wykształcenie rodziców, a wynik z matematyki

Wykształcenie rodziców, a wynik z pisania

Wykształcenie rodziców, a wynik z pisania

Wykształcenie rodziców, a wynik z czytania

Wykształcenie rodziców, a wynik z czytania

Wpływ spożywanego posiłku i kursu na wynik z matematyki

Analiza wariancji

Analiza wariancji (ANOVA) służy do badania obserwacji, które zależą od jednego lub kilku działających równocześnie czynników. Sprawdzamy czy jedna zmienna kategoryczna wpływa na wynik zmiennej ilościowej. Chcemy sprawdzić czy średnie różnią się istotnie w poszczególnych grupach.

Założenia analizy wariancji:

  • dane muszą być ilościowe

  • wariancje muszą być homogeniczne, czyli zróżnicowanie wariancji w grupach jest podobne

  • dane pochodzą z rozkładu normalnego

Najpierw sprawdzamy homogeniczność wariancji testem Bartletta, jeśli p-value jest większe niż 0.05, przechodzimy do analizy wariancji. Po analizie wariancji sprawdzamy, które średnie różnią się istotnie (funkcją TukeyHSD). Na końcu sprawdzamy zgodność danych z rozkładem normalnym.

Wynik z matematyki a grupa etniczna

Opis obrazka

Homogeniczność wariancji

    bartlett.test(students$`Wynik-matematyka` ~ students$`Grupa etniczna`)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  students$`Wynik-matematyka` by students$`Grupa etniczna`
## Bartlett's K-squared = 4.0757, df = 4, p-value = 0.3959

Jak możemy zauważyć, p-value jest większe niż 0.05, więc nie ma podstaw do odrzucenia hipotezy zerowej, która głosi, że wariancje są homogeniczne. Przechodzimy do ANOVY.

ANOVA

  aov1 <- aov(students$`Wynik-matematyka` ~ students$`Grupa etniczna`)
  summary(aov1)
##                            Df Sum Sq Mean Sq F value   Pr(>F)    
## students$`Grupa etniczna`   4  12729    3182   14.59 1.37e-11 ***
## Residuals                 995 216960     218                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

P-value testu ANOVY jest niższe niż 0.05. Oznacza to, że średnie przynajmniej dla jednej pary grup różnią się istotnie. Sprawdzimy, w których grupach średnie różnią się istotnie.

Które średnie różnią się istotnie?

    TukeyHSD(aov1)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = students$`Wynik-matematyka` ~ students$`Grupa etniczna`)
## 
## $`students$`Grupa etniczna``
##                                           diff        lwr         upr     p adj
## Azjaci-Afroamerykanie                -3.909964  -7.755225 -0.06470228 0.0440476
## Biali-Afroamerykanie                 -2.898646  -6.263189  0.46589828 0.1289617
## Hawajczycy i inni-Afroamerykanie     -5.733382 -10.684372 -0.78239222 0.0138238
## Rdzenni Amerykanie-Afroamerykanie     6.458833   2.234263 10.68340283 0.0003084
## Biali-Azjaci                          1.011318  -2.686715  4.70935196 0.9451894
## Hawajczycy i inni-Azjaci             -1.823418  -7.006814  3.35997818 0.8723586
## Rdzenni Amerykanie-Azjaci            10.368797   5.874102 14.86349240 0.0000000
## Hawajczycy i inni-Biali              -2.834736  -7.672268  2.00279565 0.4968040
## Rdzenni Amerykanie-Biali              9.357479   5.266463 13.44849398 0.0000000
## Rdzenni Amerykanie-Hawajczycy i inni 12.192215   6.721516 17.66291427 0.0000000

Sprawdzamy, w których grupach średnie różnią się istotnie. Są to grupy gdzie p-value jest mniejsze niż 0.05. Na przykład Azjaci-Afroamerykanie czy Rdzenni Amerykanie-Biali.

Zgodność z rozkładem normalnym

  tapply(students$`Wynik-matematyka`, students$`Grupa etniczna`, shapiro.test)
## $Afroamerykanie
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.98967, p-value = 0.05927
## 
## 
## $Azjaci
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.98081, p-value = 0.01039
## 
## 
## $Biali
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.98911, p-value = 0.01741
## 
## 
## $`Hawajczycy i inni`
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.99174, p-value = 0.8545
## 
## 
## $`Rdzenni Amerykanie`
## 
##  Shapiro-Wilk normality test
## 
## data:  X[[i]]
## W = 0.97704, p-value = 0.01849

Widzimy że rozkład normalny mają tylko grupy Afroamerykanów oraz Hawajczyków i innych, natomiast dla innych grup etnicznych p-value w teście Shapiro-Wilka jest mniejsze niz 0.05, więc nie możemy powiedzieć, że pochodzą z rozkładu normalnego.

Wynik z matematyki a rodzaj spożywanych posiłków

Opis obrazka

Homogeniczność wariancji

    bartlett.test(students$`Wynik-matematyka` ~ students$`Rodzaj spożywanych posiłków`)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  students$`Wynik-matematyka` by students$`Rodzaj spożywanych posiłków`
## Bartlett's K-squared = 5.0931, df = 1, p-value = 0.02402

W tym przypadku, p-value z testu Bartletta jest mniejsze niż 0.05, nie możemy więc przeprowadzić analizy wariancji. Wobec tego stosujemy test Kruskala-Wallisa w celu przeprowadzenia nieparametrycznej analizy wariancji.

Nieparametryczna analiza wariancji

## 
##  Kruskal-Wallis rank sum test
## 
## data:  students$`Wynik-matematyka` by students$`Rodzaj spożywanych posiłków`
## Kruskal-Wallis chi-squared = 113.69, df = 1, p-value < 2.2e-16

P-value w teście Kruskala-Wallisa jest niższe niż przyjęte przez nas 0.05, a zatem średnie różnią się istotnie.

Aplikacja Shiny

Nasza aplikacja składa się z kilku kart, za pomocą których użytkownik decyduje co chce zobaczyć: część analizy danych, wyświetlenie dowolnych wykresów i statystyk opisowych. W przypadku analizy wariancji może sam przeprowadzić test Bartletta, ANOVĘ, TukeyHSD oraz test Shapiro-Wilka. Także w przypadku kiedy ANOVA jest niemożliwa, istnieje możliwość przeprowadzenia testu Kruskala-Wallisa.